import { Component, Input, OnInit,ViewChild } from '@angular/core';
import { SFComponent, SFSchema } from '@delon/form';
import { ApiService } from '@core/services/api';
import { HttpClient } from '@angular/common/http';
import { NzMessageService, NzModalRef } from 'ng-zorro-antd';

@Component({
  selector: 'app-cost-manage-cost-edit',
  templateUrl: './cost-edit.component.html',
})
export class CostManageCostEditComponent implements OnInit {
  @ViewChild("sf",{ static : false }) sf:SFComponent
  @Input()type: 0 | 1;
  @Input()
  set _param(value) {
    console.log(value);
    if(this.type == 1){
      this.param = value;
      let list=[]
      for(let item of value.itemTypeList){ 
        list.push(item.code)
      }
      this.param.itemType = list
    }else if(this.type == 0){
      this.areaId=value.id;
    }
  };
  areaId:any;
  showForm = false;
  param: any;
  schema: SFSchema = {
    properties: {
      // cashMoney: {
      //   type: 'number',
      //   title: '押金(元)',
      //   default: 15
      // },
      itemName: {
        type: 'string',
        title: '项目名称',
        minimum:1
      },
      itemType: {
        type: 'string',
        title: '项目类型',
        enum:[
        ],
        ui: {
          widget: 'select',
          mode: 'multiple',
          change:(res)=>{
            // this.onchange(res)
          }
        }
      },
      // facCode: {
      //   type: 'string',
      //   title: '受益厂商',
      // },
      openType: {
        type: 'string',
        title: '开通类型',
        enum:[
          {
            label:"单个开通",value:"2"
          },
          {
            label:"整体开通",value:"1"
          }
        ],
        default:"2"
      },
      // employTime: {
      //   type: 'number',
      //   title: '使用时长(天)',
      // },
      monthlyRent: {
        type: 'number',
        title: '月租(元)',
        ui:{
          hidden:false
        }
      },
      // monthlyRent2: {
      //   type: 'number',
      //   title: '费用(元)',
      //   ui:{
      //     hidden:false
      //   }
      // },
      // discountsMonthly1: {
      //   type: 'number',
      //   title: '优惠月(数量)',
      //   ui:{
      //     spanLabel:12,
      //     spanControl:5,
      //     grid:{span:10}
      //   }
      // },
      // discountsMonthly2: {
      //   type: 'number',
      //   title: '优惠月(数量)',
      //   ui:{
      //     spanLabel:12,
      //     spanControl:5,
      //     grid:{span:6}
      //   }
      // },
      // discountsMonthly3: {
      //   type: 'number',
      //   title: '优惠月(数量)',
      //   ui:{
      //     spanLabel:12,
      //     spanControl:5,
      //     grid:{span:7}
      //   }
      // },
      // discountsRatio1: {
      //   type: 'number',
      //   title: '优惠折扣',
      //   ui:{
      //     spanLabel:12,
      //     spanControl:5,
      //     grid:{span:10}
      //   }
      // },
      // discountsRatio2: {
      //   type: 'number',
      //   title: '优惠折扣',
      //   ui:{
      //     spanLabel:12,
      //     spanControl:5,
      //     grid:{span:6}
      //   }
      // },
      // discountsRatio3: {
      //   type: 'number',
      //   title: '优惠折扣',
      //   ui:{
      //     spanLabel:12,
      //     spanControl:5,
      //     grid:{span:7}
      //   }
      // },
    },
    "ui": {
      "grid": {
        "span": 24
      }
    },
    required: ['itemName', 'itemType',"openType","monthlyRent"],
    // if:{
    //   properties:{openType:{enum:['1']}}
    // },
    // then:{
    //   required:["employTime"],
    // },
    // else:{
    //   required:[],
    // }
  }
  formSubmit(data) {
    let body: any = data;
    if(this.type == 0){
      body.areaId = this.areaId;
      body.monthlyRent = data.monthlyRent * 100
    }else if(this.type == 1){
      body = {
        id:data.itemId,
        itemName:data.itemName,
        itemType:data.itemType,
        openType:data.openType,
        monthlyRent:data.monthlyRent * 100,
        areaId:data.id
      }
    }
    console.log(body)
    const url = this.type === 0 ? "/core/pay/item/save" : "/core/pay/item/update";
    this.http.request<any>("post", url,  { body}).subscribe(res => {
      console.log(res)
      if (res.status === '200' || res.status === '201') {
        this.msg.success('操作成功');
        this.modalRef.triggerOk();
      } else {
        this.msg.error(res.message)
      }
    })
  }
  constructor(
    private api: ApiService,
    private http: HttpClient,
    private msg: NzMessageService,
    private modalRef: NzModalRef
  ) { }

  onchange(res):void{
    if(res == 1){
      this.schema.properties["monthlyRent2"].ui["hidden"] = false
      this.schema.properties["monthlyRent"].ui["hidden"] = true
    }else if(res == 2){
      this.schema.properties["monthlyRent2"].ui["hidden"] = true
      this.schema.properties["monthlyRent"].ui["hidden"] = false
    }
    this.sf.refreshSchema()
  }
  ngOnInit(): void {
    this.getData();
   
  }
  getData(){
    this.http.request<any>("get", "/system/user/fee/getCategoryList", {}).subscribe(res => {
      if (res.status === '201' || res.status === '200') {
        this.schema.properties.itemType.enum = res.data.map(item => {
          return {label: item.name, value: item.code}
        })
        this.sf.refreshSchema();
      } else {
        this.msg.error(res.message)
      }
    })
  }
 
}
